import fs from 'fs';
import path from 'path';

/**
 * 清理临时预览文件
 * 删除超过指定时间的临时文件
 */
export function cleanupTempFiles(maxAgeMinutes: number = 10) {
  const tempDir = path.join(process.cwd(), 'public', 'temp-preview');
  
  if (!fs.existsSync(tempDir)) {
    return;
  }

  try {
    const files = fs.readdirSync(tempDir);
    const now = Date.now();
    const maxAge = maxAgeMinutes * 60 * 1000; // 转换为毫秒

    files.forEach(fileName => {
      const filePath = path.join(tempDir, fileName);
      const stats = fs.statSync(filePath);
      
      // 检查文件年龄
      if (now - stats.mtime.getTime() > maxAge) {
        try {
          fs.unlinkSync(filePath);
          console.log(`已清理过期临时文件: ${fileName}`);
        } catch (error) {
          console.error(`清理文件失败 ${fileName}:`, error);
        }
      }
    });
  } catch (error) {
    console.error('清理临时文件目录失败:', error);
  }
}

/**
 * 启动定时清理任务
 */
export function startCleanupTask(intervalMinutes: number = 5, maxAgeMinutes: number = 10) {
  // 立即执行一次清理
  cleanupTempFiles(maxAgeMinutes);
  
  // 设置定时任务
  setInterval(() => {
    cleanupTempFiles(maxAgeMinutes);
  }, intervalMinutes * 60 * 1000);
  
  console.log(`临时文件清理任务已启动，每 ${intervalMinutes} 分钟清理一次，删除超过 ${maxAgeMinutes} 分钟的文件`);
}
